AUTOSAR

您所在的位置:网站首页 localport和standard port的区别 AUTOSAR

AUTOSAR

2023-09-16 03:08| 来源: 网络整理| 查看: 265

简述:Ports是SWC和SWC做接口(Interface)通信使用,或者SWC通过RTE和BSW做接口(Interface)通信使用。

软件组件的端口根据输入/输出方向可分为:

需求端口(Require Port,RPort):用于从其他软件组件获得所需数据或者所请求的操作。提供供端口(Provide Port,PPort):用于对外提供某种数据或者某类操作。供需端口(Provide and Require Port,PRPort):兼有需型端口与供型端口的特性。

由于端口仅仅定义了方向, 所以AUTOSAR中用端口接口(Port Interface) 来表征端口的属性, 端口接口主要有如下几种类型:

发送者-接收者接口(Sender-Receiver Interface, S/R) ;客户端-服务器接口(Client-Server Interface, C/S) ;模式转换接口(Mode Switch Interface) ;非易失性数据接口(Non-volatile Data Interface) ;参数接口(Parameter Interface) ;触发接口(Trigger Interface) 。

对于引用发送者-接收者接口的一组端口而言, 需型端口为接收者(Receiver) , 供型端口为发送者(Sender) 。 对于引用客户端-服务器接口的一组端口而言, 需型端口为客户端(Client) , 供型端口为服务器(Server) 。

对于S/R通信模式, 可分为显示(Explicit) 和隐式(Implicit) 两种模式。 若运行实体采用显示模式的S/R通信方式, 数据读写是即时的, 这就是显式模式。;当多个运行实体需要读取相同的数据时, 若能在运行实体运行之前先把数据读到缓存中, 在运行实体运行结束后再把数据写出去, 则可以改善运行效率, 这就是隐式模式。

举例:代码中调用的API

{   ABS_Active ABS_Active = Rte_InitValue_ABS_Active_Get_ABS_Active;   //Receiver  Rte_Read__()   Rte_Read_ABS_Active_Get_ABS_Active(&ABS_Active);   //Sender   Rte_Write_PP_ABS_Active_ABS_Active(ABS_Active); }

对于C/S通信模式, 可分为同步(Synchronous) 和异步(Asynchronous) 两种模式

支持同步和异步调用,同步就是相当于B模块的函数嵌入到A模块函数后面调用,相当于A等B运行完,A再运行。异步就是A模块调用B模块,但是A模块自己本身还是可以继续运行的,相当于A和B同时开工,然后B运行完后,把结果返回给A。通信可以是1:1(1对1的调用)或者n:1(多对1的调用)

举例:代码中调用的API

{ uint8 UDS_GetEventStatus = 0U; Rte_Call_CHNL1_Flog_CANVehicleBusOFF_DiagInfo_GetEventUdsStatus(&UDS_GetEventStatus); Rte_Call_Aflog_CanFD_F_SRR0_Object_Header_S0_Absent_SetEventStatus(PASSED); }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3